home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_jvm20.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
52KB
|
2,389 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_jvm.h"
T0* r273jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}
/*No:TYPE_NONE.start_position*/
void r273jvm_initialize_local(T2 a1){
/*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
/*]*/
/*[IRF3.6jvm_write_local*/{T2 b1=a1;
r28opcode_astore((T28*)(oBC12code_attribute),b1);
}/*]*/
}
/*No:TYPE_NONE.used_as_reference*/
/*No:TYPE_NONE.is_user_expanded*/
/*No:TYPE_NONE.id*/
/*No:TYPE_NONE.is_pointer*/
/*No:TYPE_NONE.jvm_check_class_invariant*/
/*No:TYPE_NONE.to_runnable*/
/*No:TYPE_NONE.run_class*/
/*No:TYPE_NONE.us_none*/
/*No:TYPE_NONE.is_like_current*/
/*No:TYPE_NONE.is_bit*/
/*No:TYPE_NONE.jvm_write_local*/
T0* r273smallest_ancestor(T0* a1){
T0* R=NULL;
R=a1;
return R;
}
T0* r273run_time_mark(void){
T0* R=NULL;
R=((T0*)ms14_1256);
return R;
}
/*No:TYPE_NONE.is_expanded*/
/*No:TYPE_NONE.jvm_if_x_eq*/
/*No:TYPE_NONE.jvm_xnewarray*/
/*No:TYPE_NONE.jvm_push_local*/
/*No:TYPE_NONE.fz_dot*/
/*No:TYPE_NONE.is_like_feature*/
/*No:TYPE_NONE.is_a*/
T0* r273written_mark(void){
T0* R=NULL;
R=((T0*)ms14_1256);
return R;
}
/*No:TYPE_NONE.is_character*/
void r273error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r273make(T273* C,T0* a1){
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,((T0*)ms14_1256),a1);
C->_base_class_name=(T0*)n;
}
}
/*No:TYPE_NONE.jvm_convert_to*/
void r273fatal_error_generic_list(T273* C){
r21add_type((T0*)C,((T0*)ms52_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:TYPE_NONE.is_array*/
T2 r273jvm_push_default(void){
T2 R=0;
/*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
/*]*/
R=1;
return R;
}
/*No:TYPE_NONE.is_dummy_expanded*/
T0* r273generic_list(T273* C){
T0* R=NULL;
r273fatal_error_generic_list(C);
return R;
}
T0* r273base_class(T273* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
/*No:TYPE_NONE.jvm_if_x_ne*/
/*No:TYPE_NONE.base_class_name*/
/*No:TYPE_NONE.fz_jvm_root*/
/*No:TYPE_NONE.jvm_standard_is_equal*/
/*No:TYPE_NONE.is_formal_generic*/
T6 r273is_a_in(T273* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r273written_mark())==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r273look_up_for(T273* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r273base_class(C)),a1,a2);
return R;
}
/*No:TYPE_NONE.run_type*/
/*No:TYPE_NONE.expanded_initializer*/
T6 r273has_creation(T273* C,T0* a1){
T6 R=0;
r21add_position(X50start_position(a1));
r273error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms273_29715));
return R;
}
/*No:TYPE_NONE.jvm_method_flags*/
/*No:TYPE_NONE.is_boolean*/
/*No:TYPE_NONE.is_generic*/
/*No:TYPE_NONE.jvm_xaload*/
/*No:TYPE_NONE.is_real*/
T0* r273jvm_root_descriptor(void){
if(fBC12jvm_root_descriptor==0){
fBC12jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_descriptor=(T0*)n;
}
r7extend(((T7*)oBC12jvm_root_descriptor),'L');
r7append(((T7*)oBC12jvm_root_descriptor),r273jvm_root_class());
r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
}
return oBC12jvm_root_descriptor;}
/*No:TYPE_NONE.is_any*/
/*No:TYPE_NONE.is_basic_eiffel_expanded*/
/*No:TYPE_NONE.jvm_descriptor_in*/
/*No:TYPE_NONE.is_string*/
T6 r273is_native_array(T273* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267:
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_NONE.is_integer*/
/*No:TYPE_NONE.is_anchored*/
/*No:TYPE_NONE.is_run_type*/
/*No:TYPE_NONE.is_reference*/
/*No:TYPE_NONE.is_none*/
/*No:TYPE_NONE.jvm_return_code*/
/*No:TYPE_NONE.jvm_target_descriptor_in*/
/*No:TYPE_NONE.jvm_xastore*/
/*No:TYPE_NONE.is_like_argument*/
T2 r273jvm_stack_space(void){
T2 R=0;
/*[IF*/
/*AF*//*AE*/
R=1;
/*FI]*/
return R;
}
/*No:TYPE_NONE.is_double*/
T2 r273jvm_expanded_from_reference(T0* a1){
T2 R=0;
return R;
}
/*No:CALL_INFIX_OR_ELSE.static_value*/
/*No:CALL_INFIX_OR_ELSE.feature_name*/
T6 r124is_static(T124* C){
T6 R=0;
/*[IF*/
if(X52is_boolean(X109result_type((C)->_target/*4*/))){
/*[IF*/
if(X109is_static((C)->_target/*4*/)){
/*[IF*/
if((X109static_value((C)->_target/*4*/))==(1)){
R=1;
C->_static_value_mem=1;
}
else{
R=X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
C->_static_value_mem=X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR_ELSE.is_manifest_string*/
T0* r124start_position(T124* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r124add_comment(T124* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r124to_integer(T124* C){
T2 R=0;
r124error(r124start_position(C),((T0*)ms13_45846));
return R;
}
/*No:CALL_INFIX_OR_ELSE.us_or_else*/
T6 r124use_current(T124* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR_ELSE.jvm_branch_if_true*/
T0* r124to_runnable(T124* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r124runnable_expression((C)->_target/*4*/,a1);
_a=r124runnable_args((C)->_arguments/*8*/,a1);
_tt=X109result_type(_t);
_at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r124run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r124run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T124*n=malloc(sizeof(*n));
*n=M124;
r124with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r124compile_to_jvm_into(T124* C,T0* a1){
T2 R=0;
R=r124standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_OR_ELSE.is_pre_computable*/
/*No:CALL_INFIX_OR_ELSE.fz_bad_argument*/
/*No:CALL_INFIX_OR_ELSE.fz_iinaiv*/
T0* r124result_type(T124* C){
T0* R=NULL;
T0* _tla=NULL;
R=X27result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X52is_like_current(R)){
R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR_ELSE.static_value_mem*/
/*No:CALL_INFIX_OR_ELSE.run_feature*/
T0* r124runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r124standard_compile_target_to_jvm(T124* C){
r124compile_to_jvm(C);
X52jvm_check_class_invariant(r124result_type(C));
}
/*No:CALL_INFIX_OR_ELSE.compile_to_jvm_assignment*/
/*No:CALL_INFIX_OR_ELSE.fz_07*/
void r124compile_to_jvm_old(T124* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_OR_ELSE.jvm_assign*/
/*No:CALL_INFIX_OR_ELSE.jvm_branch_if_false*/
void r124compile_to_jvm(T124* C){
T2 _point2=0;
T2 _point1=0;
X109compile_to_jvm((C)->_target/*4*/);
_point1=r28opcode_ifne((T28*)(oBC12code_attribute));
X109compile_to_jvm(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
_point2=r28opcode_goto((T28*)(oBC12code_attribute));
r28resolve_u2_branch(_point1);
/*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
/*]*/
r28resolve_u2_branch(_point2);
}
/*No:CALL_INFIX_OR_ELSE.arg_count*/
void r124with(T124* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r124run_feature_match(C,a5);
}
/*No:CALL_INFIX_OR_ELSE.is_result*/
/*No:CALL_INFIX_OR_ELSE.fatal_error*/
void r124run_feature_match(T124* C,T0* a1){
r124run_feature_has_result(C);
r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_OR_ELSE.arguments*/
T0* r124runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_OR_ELSE.can_be_dropped*/
/*No:CALL_INFIX_OR_ELSE.implicit_cast*/
/*No:CALL_INFIX_OR_ELSE.compile_target_to_jvm*/
/*No:CALL_INFIX_OR_ELSE.isa_dca_inline_argument*/
/*No:CALL_INFIX_OR_ELSE.arg1*/
void r124run_feature_has_result(T124* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T2 r124jvm_standard_branch_if_false(T124* C){
T2 R=0;
r124compile_to_jvm(C);
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
T0* r124run_feature_for(T124* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_OR_ELSE.target*/
void r124error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r124make(T124* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r124operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_OR_ELSE.is_current*/
T2 r124standard_compile_to_jvm_into(T124* C,T0* a1){
T2 R=0;
r124compile_to_jvm(C);
R=X52jvm_convert_to(X52run_type(r124result_type(C)),a1);
return R;
}
/*No:CALL_INFIX_OR_ELSE.is_void*/
T0* r124operator(void){
T0* R=NULL;
R=((T0*)ms14_8316);
return R;
}
T2 r124jvm_standard_branch_if_true(T124* C){
T2 R=0;
r124compile_to_jvm(C);
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
void r124afd_check(T124* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:BINARY_FILE_WRITE.path*/
T8 r38bfw_open(T2 a1,T8 a2){
T8 R=0;
R=fopen(a2,"wb");return R;
}
void r38put_byte(T38* C,T3 a1){
T6 _bool=0;
/*[IF*/
if(_bool){
r38put_byte(C,a1);
}
else{
fputc(a1,C->_output_stream);}
/*FI]*/
}
void r38connect_to(T38* C,T0* a1){
C->_output_stream=r38bfw_open((((T7*)a1))->_count/*4*/,r7to_external(((T7*)a1)));
/*[IF*/
if((NULL!=(C)->_output_stream/*4*/)){
C->_path=a1;
}
/*FI]*/
}
/*No:BINARY_FILE_WRITE.is_connected*/
/*No:BINARY_FILE_WRITE.output_stream*/
void r38disconnect(T38* C){
fclose((C)->_output_stream/*4*/);
C->_path=NULL;
}
/*No:BINARY_FILE_WRITE.make*/
T0* r296run_require(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
T2 _i=0;
r365clear((T365*)(oBC95require_collector));
_ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
r63collect_for((T63*)(X52base_class(_ct)),1,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
/*[IF*/
if(!(r365empty((T365*)(oBC95require_collector)))){
_i=1;
while (!((_i)>(((T365*)(oBC95require_collector))->_upper/*8*/))) {
_er=r365item((T365*)(oBC95require_collector),_i);
_hc=(((T291*)_er))->_header_comment/*4*/;
/*[IF*/
if(!(/*(IRF4.7empty*/((((T291*)_er))->_list/*8*/)==(NULL)/*)*/)){
_r=r296runnable((((T291*)_er))->_list/*8*/,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T291*n=malloc(sizeof(*n));
*n=M291;
r291make_runnable(n,_r,_ct,a1);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T291*)(((T291*)_er))))->_header_comment)=(_hc);
/*]*/
/*[IF*/
if((_ar)==((void*)(NULL))){
_ar=se_ma365(1,
_er);
}
else{
r365add_last(((T365*)_ar),_er);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((_ar)!=((void*)(NULL))){
{T367*n=malloc(sizeof(*n));
*n=M367;
/*[IRF3.3make*/((((T367*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EXTERNAL_FUNCTION.base_class*/
void r296set_rescue_compound(T296* C,T0* a1){
/*[IF*/
if((a1)!=((void*)(NULL))){
r21add_position(r220start_position(((T220*)a1)));
}
else{
r21add_position(r296start_position(C));
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms294_126759);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_fatal_error((T21*)(oBC12eh));
}
T0* r296start_position(T296* C){
T0* R=NULL;
R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r296is_merge_with(T296* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*48*/)!=((void*)(X95result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*48*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(X95arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
R=0;
}
else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*48*/)!=((void*)(NULL))){
R=X52is_a_in((C)->_result_type/*48*/,X95result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
R=r191is_a_in((T191*)((C)->_arguments/*20*/),X95arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*48*/)!=((void*)(NULL))){
R=X52is_a_in(X95result_type(a1),(C)->_result_type/*48*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
R=r191is_a_in((T191*)(X95arguments(a1)),(C)->_arguments/*20*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r296merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
T0* r296runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r108empty(((T108*)a1)))){
R=r108twin(((T108*)a1));
_i=(((T108*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r22push((T22*)(oBC12small_eiffel),a3);
_a=r105to_runnable((T105*)(r108item(((T108*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r296error(r105start_position((T105*)(r108item(((T108*)R),_i))),((T0*)ms13_14266));
}
else{
/*[IRF3.6put*/{T108* C1=((T108*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r22pop((T22*)(oBC12small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:EXTERNAL_FUNCTION.first_name*/
/*No:EXTERNAL_FUNCTION.em1*/
T6 r296use_current(T296* C){
T6 R=0;
R=X293use_current((C)->_native/*40*/,(T0*)C);
return R;
}
/*No:EXTERNAL_FUNCTION.header_comment*/
/*No:EXTERNAL_FUNCTION.names*/
/*No:EXTERNAL_FUNCTION.fz_03*/
void r296make_external_routine(T296* C,T0* a1,T0* a2){
C->_native=a1;
C->_alias_string=a2;
}
/*No:EXTERNAL_FUNCTION.result_type*/
/*No:EXTERNAL_FUNCTION.code_require*/
/*No:EXTERNAL_FUNCTION.make_e_feature*/
void r296add_into(T296* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
_fn=r87item((T87*)((C)->_names/*8*/),_i);
/*[IF*/
if(r94has(((T94*)a1),X50to_key(_fn))){
_fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
r21add_position(X50start_position(_fn));
r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
r21error((T21*)(oBC12eh),((T0*)ms95_41905));
/*[IRF3.6append*/{T0* b1=X50to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
else{
r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r296can_hide(T296* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*48*/)!=((void*)(X95result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*48*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
r21add_position(X95start_position(a1));
r296error(r296start_position(C),((T0*)ms95_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(X95arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
r21add_position(X95start_position(a1));
r296error(r296start_position(C),((T0*)ms95_83182));
}
else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
r21add_position(X95start_position(a1));
r296error(r296start_position(C),((T0*)ms95_67155));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*48*/)!=((void*)(NULL))){
/*[IF*/
if(!(X52is_a_in((C)->_result_type/*48*/,X95result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(r191is_a_in((T191*)((C)->_arguments/*20*/),X95arguments(a1),a2))){
r21add_position(X95start_position(a1));
r21add_position(r296start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r296merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:EXTERNAL_FUNCTION.ensure_assertion*/
T0* r296run_ensure(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _r=NULL;
r108clear((T108*)(oBC95assertion_collector));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
}/*]*/
_ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
r63collect_for((T63*)(X52base_class(_ct)),2,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
_r=r296runnable(oBC95assertion_collector,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T219*n=malloc(sizeof(*n));
*n=M219;
r219make_runnable(n,_r,_ct,a1);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T219*)(((T219*)R))))->_header_comment)=(((T364*)(oBC95header_comment_memory))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
}/*]*/
}
/*FI]*/
return R;
}
void r296check_obsolete(T296* C){
/*[IF*/
if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
/*[IF*/
if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=((T0*)ms218_39396);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T174*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r296warning(r296start_position(C),((T0*)ms13_166));
}
/*FI]*/
}
/*FI]*/
}
T0* r296try_to_undefine(T296* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r21add_position(X50start_position(a1));
_fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X50undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r296try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r296merge_header_comments(C,R);
}
else{
r63fatal_undefine(((T63*)a2),a1);
}
/*FI]*/
return R;
}
/*No:EXTERNAL_FUNCTION.is_deferred*/
/*No:EXTERNAL_FUNCTION.set_clients*/
/*No:EXTERNAL_FUNCTION.native*/
/*No:EXTERNAL_FUNCTION.code_ensure*/
/*No:EXTERNAL_FUNCTION.nb_errors*/
void r296make_routine(T296* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T296*)(C)))->_names)=(a1);
/*]*/
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
T0* r296to_run_feature(T296* C,T0* a1,T0* a2){
T0* R=NULL;
r296check_obsolete(C);
{T386*n=malloc(sizeof(*n));
*n=M386;
r386make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r296merge_header_comments(T296* C,T0* a1){
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
}
else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X95set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:EXTERNAL_FUNCTION.arguments*/
/*No:EXTERNAL_FUNCTION.require_assertion*/
void r296warning(T0* a1,T0* a2){
r21add_position(a1);
r21warning((T21*)(oBC12eh),a2);
}
T0* r296try_to_undefine_aux(T296* C,T0* a1,T0* a2){
T0* R=NULL;
{T292*n=malloc(sizeof(*n));
*n=M292;
r292from_effective(n,a1,(C)->_arguments/*20*/,(C)->_result_type/*48*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
R=(T0*)n;
}
return R;
}
/*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
/*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
/*No:EXTERNAL_FUNCTION.fz_dot*/
/*No:EXTERNAL_FUNCTION.alias_string*/
void r296error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r296make(T296* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r296make_routine(C,a1,a2,a4,a5,a6);
C->_result_type=a3;
r296make_external_routine(C,a7,a8);
}
/*No:EXTERNAL_FUNCTION.end_comment*/
void r296collect_for(T296* C,T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=(C)->_require_assertion/*28*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
r365add_last((T365*)(oBC95require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
/*[IRF3.3set_item*/((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(((T219*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
/*]*/
r219add_into((T219*)((C)->_ensure_assertion/*32*/),oBC95assertion_collector);
}
/*FI]*/
}
/*FI]*/
}
void r296set_header_comment(T296* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)>(1))){
C->_end_comment=a1;
}
/*FI]*/
}
/*No:EXTERNAL_FUNCTION.clients*/
/*No:EXTERNAL_FUNCTION.obsolete_mark*/
/*No:CREATION_CALL_3.start_position*/
/*No:CREATION_CALL_3.us_std_file_read*/
T0* r256add_comment(T256* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
/*AF*/else{
{T229*n=malloc(sizeof(*n));
*n=M229;
r229make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T6 r256use_current(T256* C){
T6 R=0;
/*[IF*/
if((r256run_args(C))!=((void*)(NULL))){
R=r152use_current((T152*)(r256run_args(C)));
}
/*FI]*/
R=(R)||(X109use_current((C)->_writable/*8*/));
return R;
}
T0* r256run_args(T256* C){
T0* R=NULL;
R=X165arguments((C)->_call/*20*/);
return R;
}
T0* r256to_runnable(T256* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
r256check_writable(C,a1);
_t=X109result_type((C)->_writable/*8*/);
r256check_created_type(C,_t);
r256check_creation_clause(C,_t);
R=(T0*)C;
}
else{
{T256*n=malloc(sizeof(*n));
*n=M256;
r256make(n,(C)->_start_position/*4*/,(C)->_writable/*8*/,(C)->_call/*20*/);
R=(T0*)n;
}
R=r256to_runnable(((T256*)R),a1);
}
/*FI]*/
return R;
}
/*No:CREATION_CALL_3.writable*/
T6 r256is_pre_computable(T256* C){
T6 R=0;
T0* _rfctbcn=NULL;
T0* _rfn=NULL;
T0* _rfct=NULL;
/*[IF*/
if(X109is_result((C)->_writable/*8*/)){
/*[IF*/
if((r256run_args(C))==((void*)(NULL))){
R=1;
}
else{
R=r152is_pre_computable((T152*)(r256run_args(C)));
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(X27is_pre_computable((C)->_run_feature/*16*/)){
}
else{
_rfct=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
_rfctbcn=((T70*)(((T63*)(X52base_class(_rfct)))->_name/*24*/))->_to_string/*0*/;
_rfn=X50to_string(/*X27name*/((T0*)((T26*)((C)->_run_feature/*16*/))->_name/*16*/));
/*[IF*/
if((((T0*)ms14_1696))==((void*)(_rfn))){
/*[IF*/
if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_16887))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_19334))==((void*)(_rfctbcn))){
}
else{
R=0;
}
/*FI]*/
}
else if((((T0*)ms14_2675))==((void*)(_rfn))){
/*[IF*/
if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
}
else{
R=0;
}
/*FI]*/
}
else if((((T0*)ms14_27651))==((void*)(_rfn))){
/*[IF*/
if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
}
else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
}
else{
R=0;
}
/*FI]*/
}
else{
R=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CREATION_CALL_3.fz_03*/
void r256compile_to_jvm0(T0* a1){
T2 _dummy=0;
/*[IF*/
if(X52is_reference(a1)){
r23jvm_basic_new((T23*)(X52run_class(a1)));
}
else{
_dummy=X52jvm_push_default(a1);
}
/*FI]*/
}
/*No:CREATION_CALL_3.us_string*/
/*No:CREATION_CALL_3.run_feature*/
/*No:CREATION_CALL_3.us_array*/
void r256check_writable(T256* C,T0* a1){
T0* _w=NULL;
C->_current_type=a1;
_w=X109to_runnable((C)->_writable/*8*/,a1);
/*[IF*/
if((_w)==((void*)(NULL))){
r21add_position(X109start_position((C)->_writable/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms253_64251);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
else{
C->_writable=_w;
}
/*FI]*/
}
void r256check_creation_clause(T256* C,T0* a1){
T0* _args=NULL;
T0* _top=NULL;
T0* _bottom=NULL;
T0* _fn=NULL;
T0* _ct=NULL;
_fn=/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/);
_top=r59base_class((T59*)(X50start_position(_fn)));
_bottom=X52base_class(a1);
/*[IF*/
if(X52is_like_current(a1)){
_fn=r63new_name_of(((T63*)_bottom),_top,_fn);
/*[IF*/
if((_fn)==((void*)(NULL))){
_fn=/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/);
r21add_position(X50start_position(_fn));
/*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X50to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms257_25652);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark(a1);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_166);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
C->_run_feature=r23get_feature((T23*)(X52run_class(a1)),_fn);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
r256cp_not_found(C,_fn);
}
/*FI]*/
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
}
else if(!(X52has_creation(a1,_fn))){
r21add_position(X50start_position(/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/)));
r21add_position(X50start_position(_fn));
/*[IRF3.6append*/{T0* b1=X50to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms257_45856);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type(a1,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
X27add_client((C)->_run_feature/*16*/,X52run_class((C)->_current_type/*12*/));
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))!=((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(X50start_position(_fn));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_67122);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(((r256arg_count(C))==(0))&&((X27arguments((C)->_run_feature/*16*/))!=((void*)(NULL)))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position((C)->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_63744);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if((r256arg_count(C))>(0)){
_ct=/*X27current_type*/((T0*)((T26*)(r22top_rf((T22*)(oBC12small_eiffel))))->_current_type/*4*/);
_args=r152to_runnable((T152*)(X165arguments((C)->_call/*20*/)),_ct);
/*[IF*/
if((_args)==((void*)(NULL))){
r256error(r152start_position((T152*)(X165arguments((C)->_call/*20*/))),((T0*)ms13_14714));
}
else{
r152match_with(((T152*)_args),(C)->_run_feature/*16*/,_ct);
}
/*FI]*/
}
/*FI]*/
C->_call=X165make_runnable((C)->_call/*20*/,(C)->_writable/*8*/,_args,(C)->_run_feature/*16*/);
}
/*No:CREATION_CALL_3.fz_bad_arguments*/
/*No:CREATION_CALL_3.fz_09*/
void r256compile_to_jvm(T256* C){
T0* _t=NULL;
T0* _w=NULL;
_w=(C)->_writable/*8*/;
_t=X52run_type(X109result_type(_w));
r256compile_to_jvm0(_t);
r24inside_new((T24*)(oBC12jvm),(C)->_run_feature/*16*/,(C)->_call/*20*/);
X52jvm_check_class_invariant(_t);
X109jvm_assign(_w);
}
T2 r256arg_count(T256* C){
T2 R=0;
/*[IF*/
if(((C)->_call/*20*/)!=((void*)(NULL))){
R=X165arg_count((C)->_call/*20*/);
}
/*FI]*/
return R;
}
/*No:CREATION_CALL_3.fatal_error*/
/*No:CREATION_CALL_3.us_with_capacity*/
/*No:CREATION_CALL_3.us_blank*/
/*No:CREATION_CALL_3.us_dictionary*/
/*No:CREATION_CALL_3.us_fixed_array*/
void r256check_created_type(T256* C,T0* a1){
T0* _rt=NULL;
_rt=X52run_type(a1);
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
}
else if(((T63*)(X52base_class(_rt)))->_is_deferred/*16*/){
r21add_type(_rt,((T0*)ms253_11858));
r256warning((C)->_start_position/*4*/,((T0*)ms253_30996));
}
/*FI]*/
/*[IF*/
if(X52is_formal_generic(a1)){
r21add_position((C)->_start_position/*4*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms253_77140);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type(a1,((T0*)ms253_180));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
r23set_at_run_time((T23*)(X52run_class(_rt)));
}
void r256warning(T0* a1,T0* a2){
r21add_position(a1);
r21warning((T21*)(oBC12eh),a2);
}
/*No:CREATION_CALL_3.current_type*/
/*No:CREATION_CALL_3.us_make*/
/*No:CREATION_CALL_3.us_std_file_write*/
/*No:CREATION_CALL_3.fz_dot*/
/*No:CREATION_CALL_3.call*/
void r256error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:CREATION_CALL_3.end_mark_comment*/
void r256make(T256* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_writable=a2;
C->_call=a3;
}
void r256cp_not_found(T256* C,T0* a1){
r21add_position(X50start_position(/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/)));
r21add_position(X50start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_53476);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
void r256afd_check(T256* C){
/*[IF*/
if((r256arg_count(C))>(0)){
r152afd_check((T152*)(r256run_args(C)));
}
/*FI]*/
}
T0*oBC335dictionary=NULL;
void r335update(T0* a1,T0* a2){
T0* _running=NULL;
T0* _current_type=NULL;
/*[IF*/
if(X109is_current(a1)){
}
else if(X109is_manifest_string(a1)){
}
else{
_current_type=/*X27current_type*/((T0*)(((T26*)a2))->_current_type/*4*/);
/*[IF*/
if(X52is_reference(_current_type)){
_running=((T23*)(X52run_class(_current_type)))->_running/*12*/;
/*[IF*/
if(((_running)!=((void*)(NULL)))&&((r340count(((T340*)_running)))>(1))){
r335update_with(a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:SWITCH_COLLECTION.jvm_define*/
/*No:SWITCH_COLLECTION.falling_down*/
void r335update_with(T0* a1){
T0* _running=NULL;
T0* _dictionary2=NULL;
T0* _key2=NULL;
T0* _key1=NULL;
T0* _current_type=NULL;
_current_type=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
_running=((T23*)(X52run_class(_current_type)))->_running/*12*/;
/*[IF*/
if(((_running)!=((void*)(NULL)))&&((r340count(((T340*)_running)))>(1))){
_key1=X52run_time_mark(_current_type);
_key2=X50to_key(/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
/*[IF*/
if(r337has((T337*)(oBC335dictionary),_key1)){
_dictionary2=r337at((T337*)(oBC335dictionary),_key1);
/*[IF*/
if(!(r333has(((T333*)_dictionary2),_key2))){
r333put(((T333*)_dictionary2),a1,_key2);
}
/*FI]*/
}
else{
{T333*n=malloc(sizeof(*n));
*n=M333;
/*[IRF3.4make*/r333with_capacity(n,32);
/*]*/
_dictionary2=(T0*)n;
}
r333put(((T333*)_dictionary2),a1,_key2);
r337put((T337*)(oBC335dictionary),_dictionary2,_key1);
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_AND_THEN.static_value*/
/*No:CALL_INFIX_AND_THEN.feature_name*/
T6 r126is_static(T126* C){
T6 R=0;
/*[IF*/
if(X52is_boolean(X109result_type((C)->_target/*4*/))){
/*[IF*/
if(X109is_static((C)->_target/*4*/)){
/*[IF*/
if((X109static_value((C)->_target/*4*/))==(0)){
R=1;
}
else{
R=X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
C->_static_value_mem=X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND_THEN.is_manifest_string*/
T0* r126start_position(T126* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r126add_comment(T126* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r126to_integer(T126* C){
T2 R=0;
r126error(r126start_position(C),((T0*)ms13_45846));
return R;
}
T6 r126use_current(T126* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND_THEN.jvm_branch_if_true*/
T0* r126to_runnable(T126* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r126runnable_expression((C)->_target/*4*/,a1);
_a=r126runnable_args((C)->_arguments/*8*/,a1);
_tt=X109result_type(_t);
_at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r126run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r126run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T126*n=malloc(sizeof(*n));
*n=M126;
r126with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r126compile_to_jvm_into(T126* C,T0* a1){
T2 R=0;
R=r126standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_AND_THEN.is_pre_computable*/
/*No:CALL_INFIX_AND_THEN.fz_bad_argument*/
/*No:CALL_INFIX_AND_THEN.fz_iinaiv*/
T0* r126result_type(T126* C){
T0* R=NULL;
T0* _tla=NULL;
R=X27result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X52is_like_current(R)){
R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND_THEN.static_value_mem*/
/*No:CALL_INFIX_AND_THEN.run_feature*/
T0* r126runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r126standard_compile_target_to_jvm(T126* C){
r126compile_to_jvm(C);
X52jvm_check_class_invariant(r126result_type(C));
}
/*No:CALL_INFIX_AND_THEN.compile_to_jvm_assignment*/
/*No:CALL_INFIX_AND_THEN.fz_07*/
void r126compile_to_jvm_old(T126* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_AND_THEN.jvm_assign*/
/*No:CALL_INFIX_AND_THEN.jvm_branch_if_false*/
void r126compile_to_jvm(T126* C){
T0* _ca=NULL;
T2 _point2=0;
T2 _failure=0;
_ca=oBC12code_attribute;
X109compile_to_jvm((C)->_target/*4*/);
_failure=r28opcode_ifeq(((T28*)_ca));
X109compile_to_jvm(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
_point2=r28opcode_goto(((T28*)_ca));
r28resolve_u2_branch(_failure);
/*[IRF3.4opcode_iconst_0*/r28opcode(((T28*)_ca),3,1);
/*]*/
r28resolve_u2_branch(_point2);
}
/*No:CALL_INFIX_AND_THEN.arg_count*/
void r126with(T126* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r126run_feature_match(C,a5);
}
/*No:CALL_INFIX_AND_THEN.is_result*/
/*No:CALL_INFIX_AND_THEN.fatal_error*/
void r126run_feature_match(T126* C,T0* a1){
r126run_feature_has_result(C);
r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_AND_THEN.arguments*/
T0* r126runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND_THEN.can_be_dropped*/
/*No:CALL_INFIX_AND_THEN.implicit_cast*/
/*No:CALL_INFIX_AND_THEN.compile_target_to_jvm*/
/*No:CALL_INFIX_AND_THEN.isa_dca_inline_argument*/
/*No:CALL_INFIX_AND_THEN.arg1*/
/*No:CALL_INFIX_AND_THEN.us_and_then*/
void r126run_feature_has_result(T126* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T2 r126jvm_standard_branch_if_false(T126* C){
T2 R=0;
r126compile_to_jvm(C);
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
T0* r126run_feature_for(T126* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_AND_THEN.target*/
void r126error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r126make(T126* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r126operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_AND_THEN.is_current*/
T2 r126standard_compile_to_jvm_into(T126* C,T0* a1){
T2 R=0;
r126compile_to_jvm(C);
R=X52jvm_convert_to(X52run_type(r126result_type(C)),a1);
return R;
}
/*No:CALL_INFIX_AND_THEN.is_void*/
T0* r126operator(void){
T0* R=NULL;
R=((T0*)ms14_10800);
return R;
}
T2 r126jvm_standard_branch_if_true(T126* C){
T2 R=0;
r126compile_to_jvm(C);
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
void r126afd_check(T126* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
void r26fall_down(T26* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((C)->_current_type/*4*/);
_running=(((T23*)_current_rc))->_running/*12*/;
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((C)->_current_type/*4*/);
_i=(((T340*)_running))->_lower/*12*/;
while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
_sub_rc=r340item(((T340*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
_sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
_rf=r23get_feature(((T23*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_FEATURE_3.use_current_state*/
/*No:RUN_FEATURE_3.rescue_compound*/
/*No:RUN_FEATURE_3.actuals_clients*/
/*No:RUN_FEATURE_3.ucs_false*/
/*No:RUN_FEATURE_3.is_static*/
T0* r26start_position(T26* C){
T0* R=NULL;
R=r307start_position((T307*)((C)->_base_feature/*32*/));
return R;
}
void r26routine_mapping_jvm(T26* C){
T2 _stack_level=0;
T2 _idx=0;
T0* _ct=NULL;
T0* _rt=NULL;
_ct=(C)->_current_type/*4*/;
r24push_target_as_target((T24*)(oBC12jvm));
_stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
_rt=/*(IRF4.1result_type*/NULL/*)*/;
/*[IF*/
if((_rt)!=((void*)(NULL))){
_stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
}
/*FI]*/
_idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
}
T6 r26use_current(T26* C){
T6 R=0;
{int z1=(C)->_use_current_state/*28*/;
if((14==z1)){
R=1;
}
else
if((13==z1)){
}
else
if((15==z1)){
C->_use_current_state=16;
r26compute_use_current(C);
R=r26use_current(C);
}
else {R=1;
}}
return R;
}
/*No:RUN_FEATURE_3.mapping_jvm*/
void r26routine_afd_check(T26* C){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367afd_check((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
r220afd_check((T220*)((C)->_routine_body/*44*/));
}
/*FI]*/
/*[IF*/
if(((C)->_rescue_compound/*48*/)!=((void*)(NULL))){
r220afd_check((T220*)((C)->_rescue_compound/*48*/));
}
/*FI]*/
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*No:RUN_FEATURE_3.ucs_not_computed*/
T6 r26is_pre_computable(T26* C){
T6 R=0;
/*[IF*/
if(((C)->_arguments/*36*/)==((void*)(NULL))){
/*[IF*/
if(((C)->_routine_body/*44*/)==((void*)(NULL))){
R=1;
}
else{
/*[IF*/
if(((C)->_local_vars/*40*/)==((void*)(NULL))){
R=r220is_pre_computable((T220*)((C)->_routine_body/*44*/));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r26std_compute_use_current(T26* C){
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
/*[IF*/
if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
/*[IF*/
if(r220use_current((T220*)((C)->_routine_body/*44*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_rescue_compound/*48*/)!=((void*)(NULL))){
/*[IF*/
if(r220use_current((T220*)((C)->_rescue_compound/*48*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
/*[IF*/
if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
C->_use_current_state=13;
}
/*FI]*/
}
T0* r26run_class(T26* C){
T0* R=NULL;
R=X52run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_3.result_type*/
/*No:RUN_FEATURE_3.base_feature*/
/*No:RUN_FEATURE_3.static_value_mem*/
/*No:RUN_FEATURE_3.ensure_assertion*/
T2 r26jvm_local_variable_offset(T26* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
R=(R)+(r182jvm_offset_of((T182*)((C)->_local_vars/*40*/),a1));
return R;
}
T2 r26arg_count(T26* C){
T2 R=0;
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_3.fz_19*/
T6 r26is_exported_in(T26* C,T0* a1){
T6 R=0;
R=r103gives_permission_to((T103*)(r26clients(C)),a1);
return R;
}
/*No:RUN_FEATURE_3.arguments*/
T2 r26jvm_argument_offset(T26* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
return R;
}
/*No:RUN_FEATURE_3.can_be_dropped*/
void r26initialize(T26* C){
C->_arguments=((T307*)((C)->_base_feature/*32*/))->_arguments/*24*/;
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
/*[IF*/
if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
{T191*n=malloc(sizeof(*n));
*n=M191;
r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
C->_local_vars=((T307*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
/*[IF*/
if(((C)->_local_vars/*40*/)!=((void*)(NULL))){
C->_local_vars=r182to_runnable((T182*)((C)->_local_vars/*40*/),(C)->_current_type/*4*/);
}
/*FI]*/
C->_routine_body=((T307*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
/*[IF*/
if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
C->_routine_body=r220to_runnable((T220*)((C)->_routine_body/*44*/),(C)->_current_type/*4*/);
}
/*FI]*/
/*[IF*/
if(r76require_check((T76*)(oBC12run_control))){
C->_require_assertion=r307run_require((T0*)C);
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
C->_ensure_assertion=r307run_ensure((T0*)C);
}
/*FI]*/
C->_rescue_compound=((T307*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
/*[IF*/
if(((C)->_rescue_compound/*48*/)!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
C->_rescue_compound=r220to_runnable((T220*)((C)->_rescue_compound/*48*/),(C)->_current_type/*4*/);
}
/*FI]*/
}
/*No:RUN_FEATURE_3.require_assertion*/
/*No:RUN_FEATURE_3.update_tmp_jvm_descriptor*/
T2 r26jvm_max_locals(T26* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*40*/)!=((void*)(NULL))){
R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*40*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
return R;
}
void r26jvm_define_opening(T26* C){
T0* _t=NULL;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*40*/)!=((void*)(NULL))){
r182jvm_initialize((T182*)((C)->_local_vars/*40*/));
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
}
void r26jvm_define_closing(T26* C){
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
/*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*No:RUN_FEATURE_3.clients_memory*/
/*No:RUN_FEATURE_3.current_type*/
void r26add_client(T26* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T343*n=malloc(sizeof(*n));
*n=M343;
r343with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r23add_client((T23*)(r26run_class(C)),a1);
}
/*No:RUN_FEATURE_3.ucs_in_computation*/
void r26compute_use_current(T26* C){
T0* _ct=NULL;
_ct=(C)->_current_type/*4*/;
/*[IF*/
if(X52is_reference(_ct)){
/*[IF*/
if(r76no_check((T76*)(oBC12run_control))){
C->_use_current_state=14;
}
else{
r26std_compute_use_current(C);
}
/*FI]*/
}
else{
r26std_compute_use_current(C);
}
/*FI]*/
}
void r26method_info_start(T26* C){
T2 _flags=0;
_flags=X52jvm_method_flags((C)->_current_type/*4*/);
r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r26jvm_descriptor(C));
}
void r26make(T26* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r26run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
/*]*/
r22incr_magic_count((T22*)(oBC12small_eiffel));
C->_use_current_state=15;
r22push((T22*)(oBC12small_eiffel),(T0*)C);
r26initialize(C);
r22pop((T22*)(oBC12small_eiffel));
}
/*No:RUN_FEATURE_3.ucs_true*/
/*No:RUN_FEATURE_3.routine_body*/
void r26jvm_define(T26* C){
r26method_info_start(C);
r26jvm_define_opening(C);
/*[IF*/
if(((C)->_routine_body/*44*/)!=((void*)(NULL))){
r220compile_to_jvm((T220*)((C)->_routine_body/*44*/));
}
/*FI]*/
r26jvm_define_closing(C);
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*]*/
r39finish((T39*)(oBC12method_info));
}
/*No:RUN_FEATURE_3.name*/
/*No:RUN_FEATURE_3.local_vars*/